package com.test;

/**
 * 选择排序  时间复杂度为o(n`2)  空间复杂度为o(1)
 *
 * 没有最好最坏的情况  排序时间都是一样的
 *
 * 说明：
 * 从头开始排序 从后面选择最小的与第一个交换     然后再从后面选择最小的与第二个进行交互
 *
 * 知道交换到倒数第二个与倒数第一个进行交换
 *
 * Created by abing on 2015/11/26.
 */
public class SuanFaSelect {

    public static void main(String[] args){

        int[] arr ={1,4,7,3,22,65,44,22,88,54,76,31,32};
        sort(arr);

    }

    public static void sort(int[] arr){
        for (int i = 0 ; i < arr.length -1 ; i++){
            int min = i;
            int tmp;
            for (int j = i+1 ; j < arr.length ; j++){
                if (arr[j] < arr[min]){
                    min = j;
                }
            }
            if (min != i){
                tmp = arr[min];
                arr[min] = arr[i];
                arr[i] = tmp;
            }
        }
        for (int a : arr){
            System.out.print(a + " ");
        }

    }
}
